Grammar

The grammar for our language now looks like this:

\[ \begin{align} \Program \prod & \Statements\\ \\ \Statements \prod & \Statement \Statements \\ \alt & \epsilon\\ \\ \Statement \prod & \INPUT \VAR \SEMI \\ \alt & \gt{printString} \STR \SEMI \\ \alt & \gt{printNumber} \Expr \SEMI \\ \alt & \VAR \ASSIGN \Expr \SEMI \\ \alt & \IF \gt{(} \Expr \gt{)} \gt{\{} \Statements \gt{\}} \ELSE \gt{\{} \Statements \gt{\}}\\ \alt & \IF \gt{(} \Expr \gt{)} \gt{\{} \Statements \gt{\}}\\ \alt & \WHILE \gt{(} \Expr \gt{)} \gt{\{} \Statements \gt{\}}\\ \\ \Expr \prod & \Expr \gt{+} \Expr \\ \alt & \Expr \gt{-} \Expr \\ \alt & \Expr \gt{*} \Expr \\ \alt & \gt{(} \Expr \gt{)} \\ \alt & \INT\\ \alt & \VAR \end{align} \]